From: Rui Matos Date: Mon, 26 May 2014 13:27:16 +0000 (+0200) Subject: switcherPopup: Add a return value to _keyPressHandler X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~2470 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=dd85670f8b25d6c6c36ecc10c90f2a11bec556ab;p=gnome-shell.git switcherPopup: Add a return value to _keyPressHandler This allows us to handle keybindings that use Escape instead of just dismissing the popup unconditionally when we see an Escape press. https://bugzilla.gnome.org/show_bug.cgi?id=730739 --- diff --git a/js/ui/altTab.js b/js/ui/altTab.js index 40fae87c2..78773d931 100644 --- a/js/ui/altTab.js +++ b/js/ui/altTab.js @@ -167,6 +167,8 @@ const AppSwitcherPopup = new Lang.Class({ this._select(this._selectedIndex, this._nextWindow()); else if (keysym == Clutter.Up) this._select(this._selectedIndex, null, true); + else + return Clutter.EVENT_PROPAGATE; } else { if (keysym == Clutter.Left) this._select(this._previous()); @@ -174,7 +176,11 @@ const AppSwitcherPopup = new Lang.Class({ this._select(this._next()); else if (keysym == Clutter.Down) this._select(this._selectedIndex, 0); + else + return Clutter.EVENT_PROPAGATE; } + + return Clutter.EVENT_STOP; }, _scrollHandler: function(direction) { @@ -404,7 +410,11 @@ const WindowSwitcherPopup = new Lang.Class({ this._select(this._previous()); else if (keysym == Clutter.Right) this._select(this._next()); + else + return Clutter.EVENT_PROPAGATE; } + + return Clutter.EVENT_STOP; }, _finish: function() { diff --git a/js/ui/ctrlAltTab.js b/js/ui/ctrlAltTab.js index e52290905..199119707 100644 --- a/js/ui/ctrlAltTab.js +++ b/js/ui/ctrlAltTab.js @@ -165,6 +165,10 @@ const CtrlAltTabPopup = new Lang.Class({ this._select(this._previous()); else if (keysym == Clutter.Right) this._select(this._next()); + else + return Clutter.EVENT_PROPAGATE; + + return Clutter.EVENT_STOP; }, _finish : function(time) { diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js index 8d6242da2..0df05027c 100644 --- a/js/ui/status/keyboard.js +++ b/js/ui/status/keyboard.js @@ -292,6 +292,10 @@ const InputSourcePopup = new Lang.Class({ this._select(this._previous()); else if (keysym == Clutter.Right) this._select(this._next()); + else + return Clutter.EVENT_PROPAGATE; + + return Clutter.EVENT_STOP; }, _finish : function() { diff --git a/js/ui/switcherPopup.js b/js/ui/switcherPopup.js index f7b8897e8..64df5fe54 100644 --- a/js/ui/switcherPopup.js +++ b/js/ui/switcherPopup.js @@ -190,10 +190,11 @@ const SwitcherPopup = new Lang.Class({ this._disableHover(); + if (this._keyPressHandler(keysym, backwards, action) != Clutter.EVENT_PROPAGATE) + return Clutter.EVENT_STOP; + if (keysym == Clutter.Escape) this.destroy(); - else - this._keyPressHandler(keysym, backwards, action); return Clutter.EVENT_STOP; },